package testes;

import static org.junit.Assert.*;

import org.junit.*;

import classes.Conta;

public class TestConta {

	private Conta conta;
	
	@Before 
	public void criarConta() throws Exception {
		conta = new Conta(1000, 100);
	}
	
	/**
	 * Testa erros no construtor da conta.
	 */
	@Test 
	public void testaErrosNoConstrutor (){
		try {
			new Conta( -12 , 800 );
		}
		catch( Exception e ){
			Assert.assertEquals("Mensagem Errada!", "Numero Invalido!", e.getMessage() );
		}
		
		try {
			new Conta( 12 , -800 );
		}
		catch( Exception e ){
			Assert.assertEquals("Mensagem Errada!", "Saldo Invalido!", e.getMessage() );
		}
	}
	
	
	@Test
	public void testConta () {
		Assert.assertTrue( conta.getSaldo() == 100 );
		Assert.assertTrue(conta.getNumero() == 1000);
		
	}

	
	/**
	 * testa fazer um deposito na conta
	 * @throws Exception
	 */
	@Test
	public void testaDepositar() throws Exception {
		Conta minhaConta  = new Conta(1000, 0);
		minhaConta.depositar(1000);
		Assert.assertTrue( minhaConta.getSaldo() == 1000 );
		minhaConta.depositar(500);
		Assert.assertTrue( minhaConta.getSaldo() == 1500 );
	}
	
	/**
	 * Testes do metodo sacar.
	 * 
	 * @throws Exception
	 */
	@Test
	public void testaSacar() throws Exception {
		Conta novaConta = new Conta( 1001, 2000);
		Assert.assertTrue( novaConta.getSaldo() == 2000 );
		novaConta.sacar( 200 );
		Assert.assertTrue ( novaConta.getSaldo() == 1800 );
	}


	
		
}//fim da classe
